#ifndef RRTRACER_H
#define RRTRACER_H

#include "rrobject.h"
#include "rreye.h"
#include "rrlight.h"

class RRTracer
{
private:
    map<int, RRObject*> objset;
    int map_index;
    RREye eye;
    RRLight light;

public:
    RRTracer();
    void rrBeginObject();
    void rrBeginComponent(RRMaterial *arg);
    void rrSetPrim(RRPrim *arg);
    void rrEndComponent();
    void rrEndObject();
    void rrCalcReflection(RRCrossInfo *arg);
    void rrCalcDiffusion(RRCrossInfo *arg);
    void rrCalcShadow(RRCrossInfo *arg);
    void rrConfirmHit(RRRay *ray, RRCrossInfo *arg);
    void rrTrace(RRRay *ray, RRCrossInfo *arg);
    RRVec4 rrEmitRay(float xs, float ys);
};

#endif // RRTRACER_H
